/**
 * 
 */
package com.swim.recruitment.entity;

import org.hibernate.validator.constraints.NotBlank;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.validator.constraints.Length;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * 求职简历Entity
 * @author ljw
 * @version 2023-04-13
 */
@Table(name="t_resume", alias="a", columns={
		@Column(name="id", attrName="id", label="唯一标识", isPK=true),
		@Column(name="name", attrName="name", label="姓名", queryType=QueryType.LIKE),
		@Column(name="post", attrName="post", label="岗位"),
		@Column(name="salary_min", attrName="salaryMin", label="最小薪资"),
		@Column(name="salary_max", attrName="salaryMax", label="最大薪资"),
		@Column(name="city", attrName="city", label="城市"),
		@Column(name="area", attrName="area", label="区县"),
		@Column(name="tag", attrName="tag", label="标签"),
		@Column(name="skill_introduction", attrName="skillIntroduction", label="技能介绍"),
		@Column(name="work_experience", attrName="workExperience", label="工作经验"),
		@Column(name="skills_specialties", attrName="skillsSpecialties", label="技能特长"),
		@Column(name="address", attrName="address", label="居住地址"),
		@Column(name="mobile", attrName="mobile", label="手机号"),
		@Column(includeEntity=DataEntity.class),
	}, orderBy="a.update_date DESC"
)
public class Resume extends DataEntity<Resume> {
	
	private static final long serialVersionUID = 1L;
	private String name;		// 姓名
	private String post;		// 岗位
	private String salaryMin;		// 最小薪资
	private String salaryMax;		// 最大薪资
	private String city;		// 城市
	private String area;		// 区县
	private String tag;		// 标签
	private String skillIntroduction;		// 技能介绍
	private String workExperience;		// 工作经验
	private String skillsSpecialties;		// 技能特长
	private String address;		// 居住地址
	private String mobile;		// 手机号
	
	//################## 附加字段 #######################
	private List<String> resumeImageUrlList = new ArrayList<String>();	//简历图片url集合
	private String avatarImageUrl;	//头像图片url
	
	public Resume() {
		this(null);
	}

	public Resume(String id){
		super(id);
	}
	
	@NotBlank(message="姓名不能为空")
	@Length(min=0, max=20, message="姓名长度不能超过 20 个字符")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@NotBlank(message="岗位不能为空")
	@Length(min=0, max=10, message="岗位长度不能超过 10 个字符")
	public String getPost() {
		return post;
	}

	public void setPost(String post) {
		this.post = post;
	}
	
	@NotBlank(message="最小薪资不能为空")
	@Length(min=0, max=10, message="最小薪资长度不能超过 10 个字符")
	public String getSalaryMin() {
		return salaryMin;
	}

	public void setSalaryMin(String salaryMin) {
		this.salaryMin = salaryMin;
	}
	
	@NotBlank(message="最大薪资不能为空")
	@Length(min=0, max=10, message="最大薪资长度不能超过 10 个字符")
	public String getSalaryMax() {
		return salaryMax;
	}

	public void setSalaryMax(String salaryMax) {
		this.salaryMax = salaryMax;
	}
	
	@NotBlank(message="城市不能为空")
	@Length(min=0, max=20, message="城市长度不能超过 20 个字符")
	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}
	
	@NotBlank(message="区县不能为空")
	@Length(min=0, max=20, message="区县长度不能超过 20 个字符")
	public String getArea() {
		return area;
	}

	public void setArea(String area) {
		this.area = area;
	}
	
	@NotBlank(message="标签不能为空")
	@Length(min=0, max=200, message="标签长度不能超过 200 个字符")
	public String getTag() {
		return tag;
	}

	public void setTag(String tag) {
		this.tag = tag;
	}
	
	@NotBlank(message="技能介绍不能为空")
	@Length(min=0, max=500, message="技能介绍长度不能超过 500 个字符")
	public String getSkillIntroduction() {
		return skillIntroduction;
	}

	public void setSkillIntroduction(String skillIntroduction) {
		this.skillIntroduction = skillIntroduction;
	}
	
	@NotBlank(message="工作经验不能为空")
	@Length(min=0, max=500, message="工作经验长度不能超过 500 个字符")
	public String getWorkExperience() {
		return workExperience;
	}

	public void setWorkExperience(String workExperience) {
		this.workExperience = workExperience;
	}
	
	@NotBlank(message="技能特长不能为空")
	@Length(min=0, max=500, message="技能特长长度不能超过 500 个字符")
	public String getSkillsSpecialties() {
		return skillsSpecialties;
	}

	public void setSkillsSpecialties(String skillsSpecialties) {
		this.skillsSpecialties = skillsSpecialties;
	}
	
	@NotBlank(message="居住地址不能为空")
	@Length(min=0, max=150, message="居住地址长度不能超过 150 个字符")
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	@NotBlank(message="手机号不能为空")
	@Length(min=0, max=11, message="手机号长度不能超过 11 个字符")
	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	public List<String> getResumeImageUrlList() {
		return resumeImageUrlList;
	}

	public void setResumeImageUrlList(List<String> resumeImageUrlList) {
		this.resumeImageUrlList = resumeImageUrlList;
	}

	public String getAvatarImageUrl() {
		return avatarImageUrl;
	}

	public void setAvatarImageUrl(String avatarImageUrl) {
		this.avatarImageUrl = avatarImageUrl;
	}
	
}